package DAOs;

import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;

import classes.Desenvolvedor;



public class DAODesenvolvedor extends DAODefault {

public void createDesenvolvedor(Desenvolvedor desenvolvedor){
		
		String sql = "INSERT INTO desenvolvedor"+
					  "(nome) "
				+"VALUES(?)";
		
		try {
			stmt = conn.prepareStatement(sql);
			
			stmt.setString(1, desenvolvedor.getNome());
			
			stmt.execute();
			
			stmt.close();
			
		} catch (SQLException e) {
			
			throw new RuntimeException(e);
		}
	}
	
	public ArrayList<Desenvolvedor> readDesenvolvedor(){
		ArrayList<Desenvolvedor> desenvolvedor = new ArrayList<>();
		String sql = "SELECT * FROM Desenvolvedor";
		
		try {
			stmt = conn.prepareStatement(sql);
			ResultSet rs = stmt.executeQuery();
			while(rs.next()){
				Desenvolvedor desenvolvedor2 = new Desenvolvedor();
				desenvolvedor2.setIdDesenvolvedor((rs.getInt("idDesenvolvedor")));
				desenvolvedor2.setNome((rs.getString("nome")));
			}
			return desenvolvedor;
		} catch (SQLException e) {
			throw new RuntimeException(e);
		}
		
	}

	public ArrayList<Desenvolvedor> searchDesenvolvedor(String dado){
		
		try{
			ArrayList<Desenvolvedor> desenvolvedor = new ArrayList<>();

		
		String sql = "SELECT * FROM Desenvolvedor WHERE nome = ? or idDesenvolvedor = ?";
		
		
			stmt = conn.prepareStatement(sql);
			

	
			stmt.setString(1, dado);
			stmt.setString(2, dado);
		
			
			ResultSet rs = stmt.executeQuery();
			
			while(rs.next()){
				
				Desenvolvedor desenvolvedor2 = new Desenvolvedor();
				
				desenvolvedor2.setIdDesenvolvedor((rs.getInt("idDesenvolvedor")));
				desenvolvedor2.setNome((rs.getString("nome")));
				
				desenvolvedor.add(desenvolvedor2);
			}
			
			return desenvolvedor;
		}
		catch (SQLException e){
			throw new RuntimeException(e);
		}
	}

	public void deleteDesenvolvedor(Desenvolvedor desenvolvedor){
		try{
			String sql = "DELETE FROM desenvolvedor WHERE idDesenvolvedor=?";
			
			stmt = conn.prepareStatement(sql);
			stmt.setInt(1, desenvolvedor.getIdDesenvolvedor());
			stmt.execute();
			stmt.close();
		}
		catch (SQLException e){
			throw new RuntimeException(e);
		}
	}

	public void updateDesenvolvedor(Desenvolvedor desenvolvedor){
		
		String sql = "UPDATE desenvolvedor SET " + 
				"nome = ? "+
				"where idDesenvolvedor = ?"; 

					  
		
		try {
			stmt = conn.prepareStatement(sql);
			
			stmt.setString(1, desenvolvedor.getNome());
			stmt.setInt(2, desenvolvedor.getIdDesenvolvedor());
			
			stmt.execute();

			stmt.close();

			
			
		} catch (SQLException e){
			throw new RuntimeException(e);

		}
		
	}
	
}
